﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BDSUETableAdapters;
using System.Data;

/// <summary>
/// Descripción breve de GestionReportes
/// </summary>
public class GestionReportes
{
    
	public GestionReportes()
	{
		//
		// TODO: Agregar aquí la lógica del constructor
		//
	}

    /// <summary>
    /// Reporte1: Listado de practicantes por programa académico
    /// Devuelve un datatable con la infomormación de los practicantes filtrado por
    /// programa académico
    /// </summary>
    /// <param name="ProAcademico">(string)nombre programa académico</param>
    /// <returns>(DataTable)Practicantes por programa</returns>
    public DataTable GenerarReporte1(string ProAcademico)
    {
        GestionarPracticantes practicantes = new GestionarPracticantes();
        DataTable dt = practicantes.ObtPracticantesPorEstado("habilitado");
        DataRow[] dtrow;

        string filtro = "ProgramaAcademico_nombreProgramaAcademico like '%" + ProAcademico + "%'";
        DataTable dtFiltrado = new DataTable();
        dtFiltrado = dt.Clone();
        dtrow = dt.Select(filtro);
        
        foreach (DataRow dtr in dtrow)
        {
            dtFiltrado.ImportRow(dtr);
        }
        return dtFiltrado;
        
    }
    
    /// <summary>
    /// Reporte2: Listado de convenios por estado
    /// Devuelve un datatable con la infomormación de los convenios filtrado por
    /// el estado
    /// </summary>
    /// <param name="estadoConvenio">(string)estado del convenio vigente, tramite o vencido</param>
    /// <returns>(DataTable)Convenios por estado</returns>

    public DataTable GenerarReporte2(string estadoConvenio)
    {
        GestionarConvenios convenios = new GestionarConvenios();
        DataTable dt = convenios.BuscarTodos();
        DataRow[] dtrow;

     //    gropuby probar
       string filtro = "estadoConvenio like '%" + estadoConvenio + "%'";
        DataTable dtFiltrado = new DataTable();
        dtFiltrado = dt.Clone();
        dtrow = dt.Select(filtro);
        
        foreach (DataRow dtr in dtrow)
        {
            dtFiltrado.ImportRow(dtr);
        }
        return dtFiltrado;
        
        
    
    }

    /// <summary>
    /// Reporte3: Datos de todas las empresas  o por sector empresarial
    /// Devuelve un datatable con la infomormación de todas las empresas, filtradas por
    /// el sector empresarial
    /// </summary>
    /// <param name="sectorEmpresarial">(string) nombre sector empresarial</param>
    /// <returns></returns>

    public DataTable GenerarReporte3(string sectorEmpresarial)
    {
        EmpresaTableAdapter empresas = new EmpresaTableAdapter();
        DataTable dt = empresas.GetDataEmpresas();
        DataRow[] dtrow;

     //    gropuby probar
       string filtro = "SectorEmpresarial_nombreSectorEmpresarial like '%" + sectorEmpresarial + "%'";
        DataTable dtFiltrado = new DataTable();
        dtFiltrado = dt.Clone();
        dtrow = dt.Select(filtro);
        
        foreach (DataRow dtr in dtrow)
        {
            dtFiltrado.ImportRow(dtr);
        }
        return dtFiltrado;
    }

    /// <summary>
    /// Reporte4: Listado de practicantes registrados en práctica por carrera, filtrados por 
    /// programa académico, NIT, estado práctica, o periodo de práctica o la combinación de
    /// todas
    /// </summary>
    /// <param name="ProgramaAcademico">(string)Nombre programa académico</param>
    /// <param name="nitEmpresa">(string) NIT empresa</param>
    /// <param name="estadoPractica">(string)Estado práctica activa, suspendida o terminada</param>
    /// <param name="IdPeriodoPractica">(int) identificador periodo de práctica</param>
    /// <returns>(DataTable)Practicantes registrados con el filtro</returns>

    public DataTable GenerarReporte4(string ProgramaAcademico, string nitEmpresa, string estadoPractica, int IdPeriodoPractica)
    {
       GestionarPracticas practicas = new GestionarPracticas();
        return practicas.BusquedaAvanzada(ProgramaAcademico, "", nitEmpresa, estadoPractica, IdPeriodoPractica);
    }







}
